home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 4 / Apprentice-Release4.iso / Languages / MPW Oberon 2.1168 / OInterfaces / PPCToolbox.mod < prev    next >
Encoding:
Text File  |  1995-08-10  |  16.5 KB  |  495 lines  |  [TEXT/MPS ]

  1. (*
  2.      File:        PPCToolbox.mod
  3.  
  4.      Contains:    Program-Program Communications Toolbox Interfaces.
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Package:    Universal Interfaces 2.0 in “MPW Latest” on ETO #17
  8.  
  9.      Copyright:    © 1984-1995 by Apple Computer, Inc.
  10.                  All rights reserved.
  11.  
  12.      Bugs?:        If you find a problem with this file, use the Apple Bug Reporter
  13.                  stack.  Include the file and version information (from above)
  14.                  in the problem description and send to:
  15.                      Internet:    apple.bugs.applelink.apple.com
  16.                      AppleLink:    APPLE.BUGS
  17.  
  18. *)
  19.  
  20. (*$TAGS-*)
  21. (*$CALLING PASCAL*)
  22. MODULE PPCToolbox;
  23.  
  24. IMPORT SYSTEM, Types, Memory, AppleTalk;
  25.  
  26. (* $PUSH*)
  27. (* $ALIGN MAC68K*)
  28. (* $LibExport+*)
  29.     
  30. TYPE
  31.     PPCServiceType* = CHAR;
  32.  
  33.  
  34. CONST
  35.     ppcServiceRealTime*            = 1;
  36.  
  37.     
  38. TYPE
  39.     PPCLocationKind* = INTEGER;
  40.  
  41.  
  42. CONST
  43.     ppcNoLocation*                = 0;                            (* There is no PPCLocName *)
  44.     ppcNBPLocation*                = 1;                            (* Use AppleTalk NBP      *)
  45.     ppcNBPTypeLocation*            = 2;                            (* Used for specifying a location name type during PPCOpen only *)
  46.  
  47.     
  48. TYPE
  49.     PPCPortKinds* = INTEGER;
  50.  
  51.  
  52. CONST
  53.     ppcByCreatorAndType*            = 1;                            (* Port type is specified as colloquial Mac creator and type *)
  54.     ppcByString*                    = 2;                            (* Port type is in pascal string format *)
  55.  
  56. (* Values returned for request field in PPCInform call *)
  57.     
  58. TYPE
  59.     PPCSessionOrigin* = CHAR;
  60.  
  61.  
  62. CONST
  63. (* Values returned for requestType field in PPCInform call *)
  64.     ppcLocalOrigin*                = 1;                            (* session originated from this machine *)
  65.     ppcRemoteOrigin*                = 2;                            (* session originated from remote machine *)
  66.  
  67.     
  68. TYPE
  69.     PPCPortRefNum* = INTEGER;
  70.  
  71.     PPCSessRefNum* = LONGINT;
  72.  
  73.     PPCPortRec* = RECORD
  74.         nameScript*:                Types.ScriptCode;                                (* script of name *)
  75.         name*:                    Types.Str32;                                    (* name of port as seen in browser *)
  76.         portKindSelector*:        PPCPortKinds;                            (* which variant *)
  77.         (*ΔΔ CASE INTEGER OF
  78.         0: ( *)
  79.     END;
  80.     PPCPortByStringPtr* = POINTER TO PPCPortByStringRec;
  81.     PPCPortByStringRec* = RECORD(PPCPortRec)
  82.             portTypeStr*:                Types.Str32;                                (* pascal type string *)
  83.            (*ΔΔ );
  84.         1: ( *)
  85.     END;
  86.     PPCPortByCreatorAndTypePtr* = POINTER TO PPCPortByCreatorAndTypeRec;
  87.     PPCPortByCreatorAndTypeRec* = RECORD(PPCPortRec)
  88.             portCreator*:                Types.OSType;
  89.             portType*:                    Types.OSType;
  90.            (*ΔΔ );*)
  91.     END;
  92.  
  93.     PPCPortPtr* = POINTER TO PPCPortRec;
  94.  
  95.     LocationNameRec* = RECORD
  96.         locationKindSelector*:    PPCLocationKind;                        (* which variant *)
  97.         (*ΔΔ CASE INTEGER OF
  98.         0: ( *)
  99.     END;
  100.     NBPLocationPtr* = POINTER TO NBPLocationRec;
  101.     NBPLocationRec* = RECORD(LocationNameRec)
  102.             nbpEntity*:                    AppleTalk.EntityName;                            (* NBP name entity *)
  103.            (*ΔΔ );
  104.         1: ( *)
  105.     END;
  106.     NBPTypeLocationPtr* = POINTER TO NBPTypeLocationRec;
  107.     NBPTypeLocationRec* = RECORD(LocationNameRec)
  108.             nbpType*:                    Types.Str32;                                (* just the NBP type string, for PPCOpen *)
  109.            (*ΔΔ );*)
  110.     END;
  111.  
  112.     LocationNamePtr* = POINTER TO LocationNameRec;
  113.  
  114.     PortInfoRec* = RECORD
  115.         filler1*:                Types.SInt8; (* unsigned char *)
  116.         authRequired*:            BOOLEAN;
  117.         name*:                    PPCPortRec;
  118.     END;
  119.  
  120.     PortInfoPtr* = POINTER TO PortInfoRec;
  121.  
  122.     PortInfoArrayPtr* = POINTER TO PortInfoRec;
  123.  
  124.     PPCParamBlockPtr* = POINTER TO PPCParamBlockRec;
  125.  
  126.     PPCCompProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (pb: PPCParamBlockPtr);
  127.     PPCCompUPP* = Types.UniversalProcPtr;
  128.  
  129.     PPCOpenPBRec* = (*ΔΔPACKEDΔΔ*) RECORD
  130.         qLink*:                    Types.Ptr;
  131.         csCode*:                    INTEGER;
  132.         intUse*:                    INTEGER;
  133.         intUsePtr*:                Types.Ptr;
  134.         ioCompletion*:            PPCCompUPP;
  135.         ioResult*:                Types.OSErr;
  136.         Reserved*:                ARRAY 5 (*ΔΔ[0..4]ΔΔ*) OF LONGINT;
  137.         portRefNum*:                PPCPortRefNum;                            (* 38 <--   Port Reference *)
  138.         filler1*:                LONGINT;
  139.         serviceType*:            PPCServiceType;                            (* 44 -->    Bit field describing the requested port service *)
  140.         resFlag*:                Types.UInt8;                                    (* Must be set to 0 *)
  141.         portName*:                PPCPortPtr;                                (* 46 -->   PortName for PPC *)
  142.         locationName*:            LocationNamePtr;                        (* 50 -->   If NBP Registration is required *)
  143.         networkVisible*:            BOOLEAN;                                (* 54 -->   make this network visible on network *)
  144.         nbpRegistered*:            BOOLEAN;                                (* 55 <--   The given location name was registered on the network *)
  145.     END;
  146.  
  147.     PPCOpenPBPtr* = POINTER TO PPCOpenPBRec;
  148.  
  149.     PPCInformPBRec* = (*ΔΔPACKEDΔΔ*) RECORD
  150.         qLink*:                    Types.Ptr;
  151.         csCode*:                    INTEGER;
  152.         intUse*:                    INTEGER;
  153.         intUsePtr*:                Types.Ptr;
  154.         ioCompletion*:            PPCCompUPP;
  155.         ioResult*:                Types.OSErr;
  156.         Reserved*:                ARRAY 5 (*ΔΔ[0..4]ΔΔ*) OF LONGINT;
  157.         portRefNum*:                PPCPortRefNum;                            (* 38 -->   Port Identifier *)
  158.         sessRefNum*:                PPCSessRefNum;                            (* 40 <--   Session Reference *)
  159.         serviceType*:            PPCServiceType;                            (* 44 <--   Status Flags for type of session, local, remote *)
  160.         autoAccept*:                BOOLEAN;                                (* 45 -->   if true session will be accepted automatically *)
  161.         portName*:                PPCPortPtr;                                (* 46 -->   Buffer for Source PPCPortRec *)
  162.         locationName*:            LocationNamePtr;                        (* 50 -->   Buffer for Source LocationNameRec *)
  163.         userName*:                Types.StringPtr;                                (* 54 -->   Buffer for Soure user's name trying to link. *)
  164.         userData*:                LONGINT;                                (* 58 <--   value included in PPCStart's userData *)
  165.         requestType*:            PPCSessionOrigin;                        (* 62 <--   Local or Network *)
  166.     END;
  167.  
  168.     PPCInformPBPtr* = POINTER TO PPCInformPBRec;
  169.  
  170.     PPCStartPBRec* = (*ΔΔPACKEDΔΔ*) RECORD
  171.         qLink*:                    Types.Ptr;
  172.         csCode*:                    INTEGER;
  173.         intUse*:                    INTEGER;
  174.         intUsePtr*:                Types.Ptr;
  175.         ioCompletion*:            PPCCompUPP;
  176.         ioResult*:                Types.OSErr;
  177.         Reserved*:                ARRAY 5 (*ΔΔ[0..4]ΔΔ*) OF LONGINT;
  178.         portRefNum*:                PPCPortRefNum;                            (* 38 -->   Port Identifier *)
  179.         sessRefNum*:                PPCSessRefNum;                            (* 40 <--   Session Reference *)
  180.         serviceType*:            PPCServiceType;                            (* 44 <--   Actual service method (realTime) *)
  181.         resFlag*:                Types.UInt8;                                    (* 45 -->   Must be set to 0  *)
  182.         portName*:                PPCPortPtr;                                (* 46 -->   Destination portName *)
  183.         locationName*:            LocationNamePtr;                        (* 50 -->   NBP or NAS style service location name *)
  184.         rejectInfo*:                LONGINT;                                (* 54 <--   reason for rejecting the session request *)
  185.         userData*:                LONGINT;                                (* 58 -->   Copied to destination PPCInform parameter block *)
  186.         userRefNum*:                LONGINT;                                (* 62 -->   userRefNum (obtained during login process)  *)
  187.     END;
  188.  
  189.     PPCStartPBPtr* = POINTER TO PPCStartPBRec;
  190.  
  191.     PPCAcceptPBRec* = RECORD
  192.         qLink*:                    Types.Ptr;
  193.         csCode*:                    INTEGER;
  194.         intUse*:                    INTEGER;
  195.         intUsePtr*:                Types.Ptr;
  196.         ioCompletion*:            PPCCompUPP;
  197.         ioResult*:                Types.OSErr;
  198.         Reserved*:                ARRAY 5 (*ΔΔ[0..4]ΔΔ*) OF LONGINT;
  199.         filler1*:                INTEGER;
  200.         sessRefNum*:                PPCSessRefNum;                            (* 40 -->   Session Reference *)
  201.     END;
  202.  
  203.     PPCAcceptPBPtr* = POINTER TO PPCAcceptPBRec;
  204.  
  205.     PPCRejectPBRec* = RECORD
  206.         qLink*:                    Types.Ptr;
  207.         csCode*:                    INTEGER;
  208.         intUse*:                    INTEGER;
  209.         intUsePtr*:                Types.Ptr;
  210.         ioCompletion*:            PPCCompUPP;
  211.         ioResult*:                Types.OSErr;
  212.         Reserved*:                ARRAY 5 (*ΔΔ[0..4]ΔΔ*) OF LONGINT;
  213.         filler1*:                INTEGER;
  214.         sessRefNum*:                PPCSessRefNum;                            (* 40 -->   Session Reference *)
  215.         filler2*:                INTEGER;
  216.         filler3*:                LONGINT;
  217.         filler4*:                LONGINT;
  218.         rejectInfo*:                LONGINT;                                (* 54 -->   reason for rejecting the session request  *)
  219.     END;
  220.  
  221.     PPCRejectPBPtr* = POINTER TO PPCRejectPBRec;
  222.  
  223.     PPCWritePBRec* = RECORD
  224.         qLink*:                    Types.Ptr;
  225.         csCode*:                    INTEGER;
  226.         intUse*:                    INTEGER;
  227.         intUsePtr*:                Types.Ptr;
  228.         ioCompletion*:            PPCCompUPP;
  229.         ioResult*:                Types.OSErr;
  230.         Reserved*:                ARRAY 5 (*ΔΔ[0..4]ΔΔ*) OF LONGINT;
  231.         filler1*:                INTEGER;
  232.         sessRefNum*:                PPCSessRefNum;                            (* 40 -->   Session Reference *)
  233.         bufferLength*:            Memory.Size;                                    (* 44 -->   Length of the message buffer *)
  234.         actualLength*:            Memory.Size;                                    (* 48 <--   Actual Length Written *)
  235.         bufferPtr*:                Types.Ptr;                                    (* 52 -->   Pointer to message buffer *)
  236.         more*:                    BOOLEAN;                                (* 56 -->   if more data in this block will be written *)
  237.         filler2*:                Types.SInt8; (* unsigned char *)
  238.         userData*:                LONGINT;                                (* 58 -->   Message block userData Uninterpreted by PPC *)
  239.         blockCreator*:            Types.OSType;                                    (* 62 -->   Message block creator Uninterpreted by PPC *)
  240.         blockType*:                Types.OSType;                                    (* 66 -->   Message block type Uninterpreted by PPC *)
  241.     END;
  242.  
  243.     PPCWritePBPtr* = POINTER TO PPCWritePBRec;
  244.  
  245.     PPCReadPBRec* = RECORD
  246.         qLink*:                    Types.Ptr;
  247.         csCode*:                    INTEGER;
  248.         intUse*:                    INTEGER;
  249.         intUsePtr*:                Types.Ptr;
  250.         ioCompletion*:            PPCCompUPP;
  251.         ioResult*:                Types.OSErr;
  252.         Reserved*:                ARRAY 5 (*ΔΔ[0..4]ΔΔ*) OF LONGINT;
  253.         filler1*:                INTEGER;
  254.         sessRefNum*:                PPCSessRefNum;                            (* 40 -->   Session Reference *)
  255.         bufferLength*:            Memory.Size;                                    (* 44 -->   Length of the message buffer *)
  256.         actualLength*:            Memory.Size;                                    (* 48 <--   Actual length read *)
  257.         bufferPtr*:                Types.Ptr;                                    (* 52 -->   Pointer to message buffer *)
  258.         more*:                    BOOLEAN;                                (* 56 <--   if true more data in this block to be read *)
  259.         filler2*:                Types.SInt8; (* unsigned char *)
  260.         userData*:                LONGINT;                                (* 58 <--   Message block userData Uninterpreted by PPC *)
  261.         blockCreator*:            Types.OSType;                                    (* 62 <--   Message block creator Uninterpreted by PPC *)
  262.         blockType*:                Types.OSType;                                    (* 66 <--   Message block type Uninterpreted by PPC *)
  263.     END;
  264.  
  265.     PPCReadPBPtr* = POINTER TO PPCReadPBRec;
  266.  
  267.     PPCEndPBRec* = RECORD
  268.         qLink*:                    Types.Ptr;
  269.         csCode*:                    INTEGER;
  270.         intUse*:                    INTEGER;
  271.         intUsePtr*:                Types.Ptr;
  272.         ioCompletion*:            PPCCompUPP;
  273.         ioResult*:                Types.OSErr;
  274.         Reserved*:                ARRAY 5 (*ΔΔ[0..4]ΔΔ*) OF LONGINT;
  275.         filler1*:                INTEGER;
  276.         sessRefNum*:                PPCSessRefNum;                            (* 40 -->   Session Reference *)
  277.     END;
  278.  
  279.     PPCEndPBPtr* = POINTER TO PPCEndPBRec;
  280.  
  281.     PPCClosePBRec* = RECORD
  282.         qLink*:                    Types.Ptr;
  283.         csCode*:                    INTEGER;
  284.         intUse*:                    INTEGER;
  285.         intUsePtr*:                Types.Ptr;
  286.         ioCompletion*:            PPCCompUPP;
  287.         ioResult*:                Types.OSErr;
  288.         Reserved*:                ARRAY 5 (*ΔΔ[0..4]ΔΔ*) OF LONGINT;
  289.         portRefNum*:                PPCPortRefNum;                            (* 38 -->   Port Identifier *)
  290.     END;
  291.  
  292.     PPCClosePBPtr* = POINTER TO PPCClosePBRec;
  293.  
  294.     IPCListPortsPBRec* = RECORD
  295.         qLink*:                    Types.Ptr;
  296.         csCode*:                    INTEGER;
  297.         intUse*:                    INTEGER;
  298.         intUsePtr*:                Types.Ptr;
  299.         ioCompletion*:            PPCCompUPP;
  300.         ioResult*:                Types.OSErr;
  301.         Reserved*:                ARRAY 5 (*ΔΔ[0..4]ΔΔ*) OF LONGINT;
  302.         filler1*:                INTEGER;
  303.         startIndex*:                INTEGER;                                (* 40 -->   Start Index *)
  304.         requestCount*:            INTEGER;                                (* 42 -->   Number of entries to be returned *)
  305.         actualCount*:            INTEGER;                                (* 44 <--   Actual Number of entries to be returned *)
  306.         portName*:                PPCPortPtr;                                (* 46 -->   PortName Match *)
  307.         locationName*:            LocationNamePtr;                        (* 50 -->   NBP or NAS type name to locate the Port Location *)
  308.         bufferPtr*:                PortInfoArrayPtr;                        (* 54 -->   Pointer to a buffer requestCount*sizeof(PortInfo) bytes big *)
  309.     END;
  310.  
  311.     IPCListPortsPBPtr* = POINTER TO IPCListPortsPBRec;
  312.  
  313.     PPCParamBlockRec* = RECORD
  314.         (*ΔΔ CASE INTEGER OF
  315.         0: (
  316.             openParam*:                    PPCOpenPBRec;
  317.            );
  318.         1: (
  319.             informParam*:                PPCInformPBRec;
  320.            );
  321.         2: (
  322.             startParam*:                    PPCStartPBRec;
  323.            );
  324.         3: (
  325.             acceptParam*:                PPCAcceptPBRec;
  326.            );
  327.         4: (
  328.             rejectParam*:                PPCRejectPBRec;
  329.            );
  330.         5: (
  331.             writeParam*:                    PPCWritePBRec;
  332.            );
  333.         6: (
  334.             readParam*:                    PPCReadPBRec;
  335.            );
  336.         7: (
  337.             endParam*:                    PPCEndPBRec;
  338.            );
  339.         8: (
  340.             closeParam*:                    PPCClosePBRec;
  341.            );
  342.         9: (
  343.             listPortsParam*:                IPCListPortsPBRec;
  344.            );*)
  345.     END;
  346.  
  347.  
  348. PROCEDURE PPCInit*(): Types.OSErr;
  349.     (*$IF NOT GENERATINGCFM*)
  350.     INLINE PASCAL $7000, $A0DD, $3E80;
  351.     (*$END*)
  352. PROCEDURE PPCOpen*(pb: PPCOpenPBPtr; async: BOOLEAN): Types.OSErr;
  353.     EXTERNAL PASCAL;
  354. PROCEDURE PPCOpenSync*(pb: PPCOpenPBPtr): Types.OSErr;
  355.     (*$IF NOT GENERATINGCFM*)
  356.     INLINE PASCAL $205F, $7001, $A0DD, $3E80;
  357.     (*$END*)
  358. PROCEDURE PPCOpenAsync*(pb: PPCOpenPBPtr): Types.OSErr;
  359.     (*$IF NOT GENERATINGCFM*)
  360.     INLINE PASCAL $205F, $7001, $A4DD, $3E80;
  361.     (*$END*)
  362. PROCEDURE PPCInform*(pb: PPCOpenPBPtr; async: BOOLEAN): Types.OSErr;
  363.     EXTERNAL PASCAL;
  364. PROCEDURE PPCInformSync*(pb: PPCInformPBPtr): Types.OSErr;
  365.     (*$IF NOT GENERATINGCFM*)
  366.     INLINE PASCAL $205F, $7003, $A0DD, $3E80;
  367.     (*$END*)
  368. PROCEDURE PPCInformAsync*(pb: PPCInformPBPtr): Types.OSErr;
  369.     (*$IF NOT GENERATINGCFM*)
  370.     INLINE PASCAL $205F, $7003, $A4DD, $3E80;
  371.     (*$END*)
  372. PROCEDURE PPCStart*(pb: PPCOpenPBPtr; async: BOOLEAN): Types.OSErr;
  373.     EXTERNAL PASCAL;
  374. PROCEDURE PPCStartSync*(pb: PPCStartPBPtr): Types.OSErr;
  375.     (*$IF NOT GENERATINGCFM*)
  376.     INLINE PASCAL $205F, $7002, $A0DD, $3E80;
  377.     (*$END*)
  378. PROCEDURE PPCStartAsync*(pb: PPCStartPBPtr): Types.OSErr;
  379.     (*$IF NOT GENERATINGCFM*)
  380.     INLINE PASCAL $205F, $7002, $A4DD, $3E80;
  381.     (*$END*)
  382. PROCEDURE PPCAccept*(pb: PPCOpenPBPtr; async: BOOLEAN): Types.OSErr;
  383.     EXTERNAL PASCAL;
  384. PROCEDURE PPCAcceptSync*(pb: PPCAcceptPBPtr): Types.OSErr;
  385.     (*$IF NOT GENERATINGCFM*)
  386.     INLINE PASCAL $205F, $7004, $A0DD, $3E80;
  387.     (*$END*)
  388. PROCEDURE PPCAcceptAsync*(pb: PPCAcceptPBPtr): Types.OSErr;
  389.     (*$IF NOT GENERATINGCFM*)
  390.     INLINE PASCAL $205F, $7004, $A4DD, $3E80;
  391.     (*$END*)
  392. PROCEDURE PPCReject*(pb: PPCOpenPBPtr; async: BOOLEAN): Types.OSErr;
  393.     EXTERNAL PASCAL;
  394. PROCEDURE PPCRejectSync*(pb: PPCRejectPBPtr): Types.OSErr;
  395.     (*$IF NOT GENERATINGCFM*)
  396.     INLINE PASCAL $205F, $7005, $A0DD, $3E80;
  397.     (*$END*)
  398. PROCEDURE PPCRejectAsync*(pb: PPCRejectPBPtr): Types.OSErr;
  399.     (*$IF NOT GENERATINGCFM*)
  400.     INLINE PASCAL $205F, $7005, $A4DD, $3E80;
  401.     (*$END*)
  402. PROCEDURE PPCWrite*(pb: PPCOpenPBPtr; async: BOOLEAN): Types.OSErr;
  403.     EXTERNAL PASCAL;
  404. PROCEDURE PPCWriteSync*(pb: PPCWritePBPtr): Types.OSErr;
  405.     (*$IF NOT GENERATINGCFM*)
  406.     INLINE PASCAL $205F, $7006, $A0DD, $3E80;
  407.     (*$END*)
  408. PROCEDURE PPCWriteAsync*(pb: PPCWritePBPtr): Types.OSErr;
  409.     (*$IF NOT GENERATINGCFM*)
  410.     INLINE PASCAL $205F, $7006, $A4DD, $3E80;
  411.     (*$END*)
  412. PROCEDURE PPCRead*(pb: PPCOpenPBPtr; async: BOOLEAN): Types.OSErr;
  413.     EXTERNAL PASCAL;
  414. PROCEDURE PPCReadSync*(pb: PPCReadPBPtr): Types.OSErr;
  415.     (*$IF NOT GENERATINGCFM*)
  416.     INLINE PASCAL $205F, $7007, $A0DD, $3E80;
  417.     (*$END*)
  418. PROCEDURE PPCReadAsync*(pb: PPCReadPBPtr): Types.OSErr;
  419.     (*$IF NOT GENERATINGCFM*)
  420.     INLINE PASCAL $205F, $7007, $A4DD, $3E80;
  421.     (*$END*)
  422. PROCEDURE PPCEnd*(pb: PPCOpenPBPtr; async: BOOLEAN): Types.OSErr;
  423.     EXTERNAL PASCAL;
  424. PROCEDURE PPCEndSync*(pb: PPCEndPBPtr): Types.OSErr;
  425.     (*$IF NOT GENERATINGCFM*)
  426.     INLINE PASCAL $205F, $7008, $A0DD, $3E80;
  427.     (*$END*)
  428. PROCEDURE PPCEndAsync*(pb: PPCEndPBPtr): Types.OSErr;
  429.     (*$IF NOT GENERATINGCFM*)
  430.     INLINE PASCAL $205F, $7008, $A4DD, $3E80;
  431.     (*$END*)
  432. PROCEDURE PPCClose*(pb: PPCOpenPBPtr; async: BOOLEAN): Types.OSErr;
  433.     EXTERNAL PASCAL;
  434. PROCEDURE PPCCloseSync*(pb: PPCClosePBPtr): Types.OSErr;
  435.     (*$IF NOT GENERATINGCFM*)
  436.     INLINE PASCAL $205F, $7009, $A0DD, $3E80;
  437.     (*$END*)
  438. PROCEDURE PPCCloseAsync*(pb: PPCClosePBPtr): Types.OSErr;
  439.     (*$IF NOT GENERATINGCFM*)
  440.     INLINE PASCAL $205F, $7009, $A4DD, $3E80;
  441.     (*$END*)
  442. PROCEDURE IPCListPorts*(pb: PPCOpenPBPtr; async: BOOLEAN): Types.OSErr;
  443.     EXTERNAL PASCAL;
  444. PROCEDURE IPCListPortsSync*(pb: IPCListPortsPBPtr): Types.OSErr;
  445.     (*$IF NOT GENERATINGCFM*)
  446.     INLINE PASCAL $205F, $700A, $A0DD, $3E80;
  447.     (*$END*)
  448. PROCEDURE IPCListPortsAsync*(pb: IPCListPortsPBPtr): Types.OSErr;
  449.     (*$IF NOT GENERATINGCFM*)
  450.     INLINE PASCAL $205F, $700A, $A4DD, $3E80;
  451.     (*$END*)
  452. PROCEDURE DeleteUserIdentity*(userRef: LONGINT): Types.OSErr;
  453.     EXTERNAL PASCAL;
  454. PROCEDURE GetDefaultUser*(VAR userRef: LONGINT; VAR userName: Types.Str32): Types.OSErr;
  455.     EXTERNAL PASCAL;
  456. PROCEDURE StartSecureSession*(pb: PPCStartPBPtr; VAR userName: Types.Str32; useDefault: BOOLEAN; allowGuest: BOOLEAN; VAR guestSelected: BOOLEAN; prompt: Types.ConstStr255Param): Types.OSErr;
  457.     EXTERNAL PASCAL;
  458. TYPE
  459.     PPCFilterProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (name: LocationNamePtr; port: PortInfoPtr): BOOLEAN;
  460.     PPCFilterUPP* = Types.UniversalProcPtr;
  461.  
  462. CONST
  463.     uppPPCCompProcInfo* = $000000C0; (* PROCEDURE (4 byte param); *)
  464.     uppPPCFilterProcInfo* = $000003D0; (* PROCEDURE (4 byte param, 4 byte param): 1 byte result; *)
  465.  
  466. PROCEDURE NewPPCCompProc*(userRoutine: PPCCompProcPtr): PPCCompUPP;
  467.     (*$IF NOT GENERATINGCFM *)
  468.     INLINE PASCAL $2E9F;
  469.     (*$END*)
  470.  
  471. PROCEDURE NewPPCFilterProc*(userRoutine: PPCFilterProcPtr): PPCFilterUPP;
  472.     (*$IF NOT GENERATINGCFM *)
  473.     INLINE PASCAL $2E9F;
  474.     (*$END*)
  475.  
  476. PROCEDURE CallPPCCompProc*(pb: PPCParamBlockPtr; userRoutine: PPCCompUPP);
  477.     (*$IF NOT GENERATINGCFM*)
  478.     INLINE PASCAL $205F, $4E90;
  479.     (*$END*)
  480.  
  481. PROCEDURE CallPPCFilterProc*(name: LocationNamePtr; port: PortInfoPtr; userRoutine: PPCFilterUPP): BOOLEAN;
  482.     (*$IF NOT GENERATINGCFM*)
  483.     INLINE PASCAL $205F, $4E90;
  484.     (*$END*)
  485.  
  486. PROCEDURE PPCBrowser*(prompt: Types.ConstStr255Param; applListLabel: Types.ConstStr255Param; defaultSpecified: BOOLEAN; VAR theLocation: LocationNameRec; VAR thePortInfo: PortInfoRec; portFilter: PPCFilterUPP; theLocNBPType: Types.ConstStr32Param): Types.OSErr;
  487.     (*$IF NOT GENERATINGCFM*)
  488.     INLINE PASCAL $303C, $0D00, $A82B;
  489.     (*$END*)
  490.  
  491. (* $ALIGN RESET*)
  492. (* $POP*)
  493.  
  494.  END PPCToolbox.
  495.